package com.fdb.efp.limit.service.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.fdb.basic.framework.core.base.DataOptionalAuthorityDao;
import com.fdb.efp.limit.common.LmtPrelistTmpVO;
import com.fdb.efp.limit.service.domain.LmtPrelistBatchApp;
import com.fdb.efp.limit.service.domain.LmtPrelistTmp;
/**
 * <p>DAO interface:预授信名单信息临时表				<p>
 * @author chenqm1
 * @date 2018-05-04
 */
public interface LmtPrelistTmpDao extends DataOptionalAuthorityDao {
	
	public int insertLmtPrelistTmp(LmtPrelistTmp lmtPrelistTmp);
	
	public int deleteByPk(LmtPrelistTmp lmtPrelistTmp);
	
	public int updateByPk(LmtPrelistTmp lmtPrelistTmp);
	
	public LmtPrelistTmp queryByPk(LmtPrelistTmp lmtPrelistTmp);
	
	public List<LmtPrelistTmpVO> queryAllOwnerByPage(LmtPrelistTmpVO lmtPrelistTmpVo);
	
	public List<LmtPrelistTmpVO> queryAllCurrOrgByPage(LmtPrelistTmpVO lmtPrelistTmpVo);
	
	public List<LmtPrelistTmpVO> queryAllCurrDownOrgByPage(LmtPrelistTmpVO lmtPrelistTmpVo);
	
	public List<LmtPrelistTmp> queryAllListByPage(LmtPrelistTmp lmtPrelistTmp);
	
	public List<LmtPrelistTmp> queryPrelistTmpList(LmtPrelistTmp lmtPrelistTmp);
	
	/**
	 * 批量插入白名单临时表
	 * @param lmtPrelists
	 * @return
	 */
	public int insertLmtPrelistTmpAll(@Param("lmtPrelistTmps")List<LmtPrelistTmp> lmtPrelistTmps);
	
	public int updatePrelistTmp(LmtPrelistTmp lmtPrelistTmp);
	
	public List<LmtPrelistTmp> queryListByCondition(LmtPrelistTmp lmtPrelistTmp);
	
	public List<LmtPrelistTmp> queryListToODS(LmtPrelistBatchApp lmtPrelistBatchApp);
	
	public List<LmtPrelistTmp> queryList2ODSForCus(LmtPrelistBatchApp lmtPrelistBatchApp);
	
	public List<LmtPrelistTmp> queryBatchListToODS(LmtPrelistBatchApp lmtPrelistBatchApp);
	
	public int updateLmtTmpChooseListNoPass(@Param("lmtPrelists")List<LmtPrelistTmp> lmtPrelist);
	
	public int updateLmtTmpChooseListPass(@Param("lmtPrelists")List<LmtPrelistTmp> lmtPrelist);
	
	public List<LmtPrelistTmp> queryListByCusIds(@Param("lmtPrelists")List<LmtPrelistTmp> lmtPrelist);
	
	public int updateNoPassReason(LmtPrelistTmp lmtPrelist);
	
	/**
	 * 失效对应临时表数据
	 * @param lmtPrelist
	 * @return
	 */
	public int updateDisableLmtPrelistTmp();
	
	/**
	 * 根据预授信流水号修改状态为失效
	 * @param preSernos
	 * @return
	 */
	public int updateDisableLmtPrelistTmpByPreSernos(@Param("preSernos")List<String> preSernos);
	
	/**
	 * 
	 * @Description 获取不能通过的白名单数据
	 * @param lmtPrelists
	 * @return
	 */
	public List<Map<String, Object>> queryFreezeListByCusIds(@Param("lmtPrelists")List<LmtPrelistTmp> lmtPrelists);
	
	public List<LmtPrelistTmp> queryBatchnoListBySerno(@Param("lmtPrelists")List<LmtPrelistTmp> lmtPrelist);
	
	public List<LmtPrelistTmp> queryLmtPreList(@Param("lmtPrelists")List<LmtPrelistTmp> lmtPrelist);
	
	/**
	 * 更新通过的记录
	 * @param lmtPrelistTmp
	 * @return
	 */
	public int updatePassList(LmtPrelistTmp lmtPrelistTmp);
	
	/**
	 * 更新冻结的记录
	 * @param lmtPrelistTmp
	 * @return
	 */
	public int updateFreezeList(LmtPrelistTmp lmtPrelistTmp);
	
	/**
     * 白名单申请客户移交操作
     * @param fromUser 移出客户经理
     * @param toUser 接收客户经理
     * @param fromBrId 移出机构
     * @param toBrId 接收机构
     * @param cusIds 客户号列表
     * @return
     */
    public int lmtWhiteBillCusHandOver(@Param("fromUser") String fromUser, @Param("toUser") String toUser, @Param("fromBrId") String fromBrId, @Param("toBrId") String toBrId, @Param("cusIds") List<String> cusIds);
 

}